<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // function test() {
        //     var count = 100

        //     function add() {
        //         count += 1;
        //         console.log(count);
        //     }

        //     function reduce() {
        //         count -= 1;
        //         console.log(count);
        //     }
        //     return [add, reduce]
        // }

        // let funs = test();
        // // 证明count是一直被保存着的
        // funs[0]();
        // funs[0]();
        // funs[0]();
        // funs[0]();
        // funs[0]();
        // funs[1]();
        // funs[1]();
        // funs[1]();
        // funs[1]();
        // funs[1]();
        // funs[1]();






        // function breadMar(num) {
        //     // 不传参数则设置为10
        //     let count = arguments[0] || 10;

        //     function add() {
        //         count++;
        //         console.log(count)
        //     }

        //     function reduce() {
        //         count--;
        //         console.log(count)
        //     }
        //     return [add, reduce]
        // }
        // let breadMgr = breadMar()
        // breadMgr[0]();
        // breadMgr[0]();
        // breadMgr[0]();
        // breadMgr[1]();
        // breadMgr[1]();
        // breadMgr[1]();


        // function whoWork() {
        //     let name = '';

        //     function setName(newName) {
        //         name = newName
        //     }

        //     function getName() {
        //         console.log(`${name}在工作`)
        //     }
        //     return {
        //         setName,
        //         getName
        //     }
        // }
        // var whoWork = whoWork();
        // whoWork.setName('马少东');
        // whoWork.setName('马少东111');
        // whoWork.getName() //name被保存

        // var href = 'window的href';
        // function foo() {
        //     let href = 'foo的href';
        //     // with 会把括号总的上下文，放在自己scope最顶底
        //     with (window) {
        //         console.log(href)
        //     }
        // }
        // foo();


        // var href = '111';
        // try {
        //     let href = '222';
        //     throw new Error('我错了');
        // } catch (err) {
        //     console.log(err)
        // }


        // var a = 1;
        // function foo(a) {
        //     console.log(a)
        // }
        // foo(2);

        // function fun() {
        //     fun()
        // }
        // console.log(fun())

        function aa() {
            const _aa = 1;
            function bb() {
                const _bb = 2;
                cc()
                function cc() {
                    console.dir(aa);
                    console.dir(bb);
                    console.dir(cc);
                }
            }
            bb();
        }
        aa();
    </script>
</body>

</html>